We started looking at sentences which is syntax and we will continue looking at some of the components of a sentence. We have addressed some of the questions like what is a sentence made of, what is important part in a sentence and how do we make one. We have tried to answer those questions in some sense but here are some more questions that are going to be interesting for us to understand such as what is a subject in a sentence. We have talked about this thing briefly. What is a subject? If someone asks you now what is a subject, what will be the answer loudly. That is minus predicate but that is nice mathematical theorem but does not help much understanding a subject, the idea of a subject that is all right that is okay which in a way tells us this proposition that subject is different from predicate, subject is not part of the predicate therefore it has a different status compared to every other element which are part of predicate is something, is one thing about a subject. In other words predicate contains objects and verbs and other elements. So if we are talking about three elements like subject, verb and object we know with this description that subject is different from verb and predicate, it has a different status right. So how do we define it, how do we define it in a more precise way that sounds better a noun or a word more precisely we can say a noun we are going to call it something else which is a noun phrase little later once we talk about phrases. So we can say a word or a noun that agrees with the verb and we have already seen what agreement means that is a semantic subject right, we are talking about both, we are talking about both and the way to put both together of course save is in agreement with. So the reason why I gave you the sentence, one of the reasons why I wanted you to take a look at that sentence is when we talk about subjects many a times we do not look at two parts of subjects one is semantic content of a subject and the other is grammatical component of a subject by now you have seen independence of syntax right by now you have seen a sentence which is the all that you need to make a sentence is its grammatical component even if a sentence does not make much sense like colorless green ideas sleep furiously a dog was reading a newspaper in the library in the night right these think these sentences do not mean any sense they do not make any sense still they are grammatical sentences the fact that syntax is independent of meaning okay makes us think little bit harder at a point that there are two parts of subjects one is its semantic content. So a word which is semantically a subject is called a logical subject okay so in a sentence like Raju Ne Chai Banai Raju is still a logical subject but grammatically speaking the subject is the noun that agrees with the word which happens to be Chai in this sentence if you put all these things together you can say you can see that in many languages of the world many a times the other 99% of times or maybe little less or little more both logical subject and grammatical subject are in one word therefore we do not need to separate them to see two parts however in some cases you can categorically see logical subject is something else and grammatical subject is something else what will be the predicate in this sentence the the predicate will be I mean that's that's that's a great question what will be a predicate what your question is is logical subject part of the predicate or not or if Chai is if if if we leave logical subject out is the grammatical subject part of the predicate that's that's that is what your question is into that and we have seen that subjects are out of out of predicate right so it's that's a conceptual question in in order to answer this question we need to look at some other some other stuff okay the reason why I am not giving you on a straight answer to this question that this is the noun which is out of the out of the predicate and the other one is inside the predicate there is a reason for that the reason is the whole notion of subject is a conceptual notion still there is no going back on the point that subjects are outside the predicate subjects have higher status than components of predicate that at a conceptual level still holds okay and that's part of principle also what is part of principle is there must be a subject in a sentence that is without a subject we don't have a sentence okay therefore we see sentences like go home is there a subject here is there a subject here no then how does it follow the principle we we have we have I thought we did but let me repeat it again principle of language says that there cannot be a sentence without a subject and you understand the meaning of principle the meaning of principle is this cannot be violated every sentence of every language must follow that so I am telling you is such a strong rule that cannot be violated that is every language and in every language every sentence must have a subject and then I am giving you counter example also we have a sentence in English go home if this is a grammatical sentence is this a grammatical sentence and this is the meaning of grammaticality if it is a grammatical sentence then it must be following principles of language in other words it must have a subject so what is the subject of the sentence you why are we not saying you then implied right we we understand that it's automatically employed in all the languages of the world when it comes to imperative sentences like these go home we don't need the subject overtly present in other words we don't need the physical presence of the word which which becomes the subject can anybody guess or does anyone know why this guess is not a big guess you can still say no body language think little harder what I am saying is this is the point where I can really extract some serious thinking from you why do we why do we not think about Hindi how do we say that in Hindi go home is there a subject here no that is overtly there is no subject how do we say that in Tamil is there a subject there no Malayalam how do we say loudly is there a subject there no if you know any other languages just right there there is no subject that is when I say no subject no overt presence of a subject but you would agree that in all the languages English Hindi Tamil Malayalam that we have seen right now in all of them the employed subject is you is that true the answer to this question is principle of economy if it is you everywhere then what is the point of saying that when we say go home right we mean if I am talking to him and I am telling him go home I don't mean you go home right this is why the the subject of an imperative sentence is going to be second person and if the second person is the subject employed in every language there is no the languages do not feel the need to express it overtly and they tend to suppress it the lexical suppression that is not not keeping subject overtly present in the language does not mean deleting the place of subject we can still retrieve the subject as you as long as we retrieve it dropping is not at all a problem now keep that in mind dropping does not mean no presence conceptually it is present so when we say no sentence without a subject we are talking about conceptual presence of subject we are not talking about in a written sentence subject must be there this point left right now look at it look at it once again before I go to predicate and talk little bit about that let me tell you one more point about this about subjects in a language like Hindi Tamil Malayalam we can drop subjects in other places too suppose I want to say I am eating an ice cream okay I am eating an ice cream how do I say that in Hindi can I also say ice cream Kha Rao if someone asks me this question in the question also one doesn't need to give the subject what are you eating how do we say that what are you eating is not them is not needed we can say Kha Rao and the answer could be ice cream Kha Rao it is making sense to everybody now Tamil do I need to say yes he say I and in the question what are you eating do I need to say you that is Aparthum how about Malayalam so loudly loudly so do I need you in the question now in the answer do I need I see this thing to talk about principles or parametric variations I don't need to know the language that's one the other thing is the fact that there is no subject in these sentences right Kha Rao or ice cream Kha Rao doesn't mean these sentences do not have subjects when I say ice cream Kha Rao right it clearly means what may right when I am asking Kha Kha Rao it clearly means only one thing which is to get it if these things are retrievable if we can retrieve these things from the sentence then there is no need to put it or we can we can present the same thing in the following way as long as things are retrievable the languages allow to drop them again it's part of principle of economy which means the universal principle which is subject must be in a sentence and principle of economy that as long as they are retrievable there is no need to keep them overtly present there is no tension between these two rules at this at this point and in the places where we see absence of subject does not really again contradict the principle of language that is no the there are sentences which do not have subjects so languages must follow universal principle and to whatever extent possible they must obey principle of economy at the same time each one of them definitely respects language internal rules right now take the same example in English if I want to ask you what are you eating can I say are you eating what are eating can I say that no this results into and grammaticality because of the absence of you again just because you is not retrievable from the context the overt presence of you is required in English which enforces us which is language internal rule that a subject must be present in English overtly English follows this rule Morvatium our languages allows dropping categorically that is dropping of subjects categorically clearly vividly see this thing all we need to understand from this if there is no tension in tension between language internal rules universal principle and following principle of economy clear so the I started this thing with your question which part of that is predicate we well I want to keep I have talked about many things and I think I have clarified some parts of it but I want to keep rest of it for further level when we talk about the actual conceptual structure of sentence right then you will see the subject is projected way high in the conceptual structure okay please remind me at that time I will remember to show it to you very soon in a couple of days I am going to come to conceptual structure in the conceptual structure subject is way high which is just to capture the idea that subject is outside the predicate right given the introductory nature of your class probably we will not go into too much of details but keeping this question in mind I will definitely show you that in that conceptual framework there are different proposals where one proposal is no no no subjects are still part of predicate what happens actually it is just one of the proposals what happens actually is once the sentences are projected outside subjects move to the front to the higher level actually they are part of predicate the people who who proposed such who proposed such a position they have these things in mind that how can how can we outrightly outrightly postulate a subject which is way too high and outside the predicate these are the problems and understand my question so they become the basis of postulating subjects and everything within predicate now if we just keep talking about these things in abstraction that subjects are also part of predicate in some cases subjects may not be part of predicate in some theoretical framework subjects are outside in some theoretical framework subjects are inside they will not make sense they will make sense when we have discussed that therefore I am leaving leaving this thing but keep in mind conceptually there is a difference between the position of subject and position of everything else in predicate any any other question does all the languages of the world have a concept of predicate yes we just like we cannot have a sentence without a subject we cannot have a sentence without a predicate which simply means what is the part of what what are the essential parts of predicate there are certain parts of predicate that are essential okay out of which one which is extremely essential is a verb okay verb therefore you do not have a sentence without a verb also okay so since every language of the world has a sentence so what follows from there is there must be predicate in every language of the world clear okay English is word media no that does not have see why some languages are word medial and why some languages are verb final or parametric what your question is dropping of is is the draw is the whole phenomena of dropping of subject dependent on verb being final no what it is dependent on is rich morphology that is rich projections rich agreement features now what what I mean by rich features is when you say you are going right look at the look at the last word part just the word part okay how do we how do we put the whole thing in English going which happens to be just one word right so at this level I can tell you by looking at it you can see this is richer than this still it is not very clear what we actually mean is the ING marker okay which is actually progressive or continuous aspect marker see this thing is actually a separate word in a language like Hindi see this thing this is go this is ING now what is this this is in a way tense marker right this tells us about present tense okay besides this telling you about tense marking this this talks about something else also which is the presence of this is correlated with the presence of this pronoun equivalent to you in a language like Hindi and I am sure it this distinction exists in other languages too we have several things how do this thing am I right and then there is something else which is not that much in use but still exists okay now this pronoun which is a still equivalent to you is not here if you have this as the marker right suppose I want to say up here is the sentence good yes no in some form of the Hindi some people can say yes it is good okay some people could speak this way yes it is good but not really warranted why it is good please ask me this question why for some people it is good I will talk to you about this little later we have not reached that point what is the marker for up the the the final marker if I want to keep up here what should I have here hey see this thing the fact that this should this should be hey at least tells you that this is the marker for something else if I want to say this one to what's the marker here to jar ha hey can I say to jar hey no can I say to jar hey ho no see this thing what what I am trying to tell you is besides marking tense this also helps you retrieve the pronoun okay this is the meaning of rich projections rich morphology therefore it's possible to drop these things because I can I can retrieve this thing on the basis of this right the marker helps me retrieve the subject therefore we can drop not the final or medial position of word clear since since we mentioned can you give me a moment I will quickly finish finish the question that came up that in some variety of Hindi up jar hey ho could be acceptable the reason for that is very simple see this is in the hierarchy this is high this is mid and this is low okay in the hierarchy of formality so there is a reason why we have three variants right so what what we can do is and for for all of them there are different markers am I right there are different markers so what happens actually and again when I show you the conceptual tree that is conceptual representation of a sentence some of these things will become clearer what happens is a pronoun that is higher in the hierarchy can agree with something that is lower right but something that is lower in the hierarchy cannot agree with what is higher therefore you never see say to move jar hey hey but up jar hey ho is possibly allowed in some variety of making sense so far we are still talking about subjects and its agreement features and I think the answer to your question should be clear now that the word finalist final status of the word has very little to do with this do with why Hindi and some other languages of South Asian subcontinent allow dropping of subjects rich morphology rich projection is responsible for that okay now so to answer the question how do we define a subject we cannot have just one sentence definition we will have to talk about lot of things at least that is at least this should be clear to you from clear to you so far what is a predicate in a sentence a predicate in a sentence as you have seen minus subject everything else is a predicate is else everything else is predicate which means verbs are part of predicate and what is also clear from examples like these is all the markers that you see whether it is a question of tense marker or special markers for specific pronouns aspect marker all of them and why and how verbs control agreement all such information is inbuilt encoded and manifested on verb alone is that the that you see that therefore verbs are called powerhouse in a sentence if I have already used this word this is what I meant because it controls everything it is called the central aspect of a sentence it is it is a very powerful thing in a sentence it controls everything okay among many other things that is interplay of functional categories that is tense aspect number person gender agreement all those things are either manifested stored or projected in and around verb okay these are parts of universal principle in every language you are going to see that whether some features are projected or not may be part of individual languages that is Hindi projects more than English does this may be may be language internal phenomena but whatever it does does at the verb is a specific principle of language okay now among many things that predicate controls is nature of its objects I think I had asked you this question last time maybe not what's the relationship between verb and its object it didn't okay so by now we know three things now now let's let's drop predicate for a moment we have talked enough about this and whatever we are going to talk now also applies to a discussion on predicate so let's talk about verb and objects have you heard this word object yes no yes object in connection with sentences have you heard about that object in connection with sentences yes no you need to tell me something yes okay okay what's an what's an object like we have spent enough time on subjects and now I think we have a fairly good sense of what subjects do what subjects are and why subjects are the way they are a fairly good sense of it what are objects in a sentence and how do we know whether we need a subject or whether we need a predicate whether we need an object or not about subjects we have a principle that subjects are required end of the story so we don't need to figure out anything but that's that principle doesn't apply to objects see this thing if I if I say I was sleeping this is a good sentence I was sleeping right I can say it in more contexts and make it more relevant I can say when you called I was sleeping right does this sentence have an object it has a verb it has a subject it doesn't have an object and like this there could be plenty of sentences in every language which doesn't have a doesn't have an object which is to say that objects are not a required part of a sentence whether of whether you are going to see an object in a sentence or not depends on how do we figure that out okay that's the next question we are going to address this is what I mean by what how do we describe nature of verb and what is an object these are the two questions that will be answered in that and also it will partially answer the question about relationship between subject predicate and an object where we have already seen the relationship between subject and its predicate we are we are going to see the relationship between verb and objects okay all right so you have you have seen these things right we have a we have lexical categories in sentences which simply means words and their categories could be either nouns verbs adjectives prepositions I have discussed preposition with you right now we understand what a preposition is okay we talked about subjects and and predicates we are going to be looking at objects so when we talk about the nature of a verb that the reason why we need to talk about nature of verb is because it determines the number of object it requires only by looking at the nature of verb you can tell whether this verb needs an object or not okay so if a if a sentence like what was the sentence that I gave you I was sleeping if this sentence does not have an object then not having an object follows from the nature of the verb sleep okay so look so what we mean by nature of nature of verb is have you heard these words intransitive transitive what do they mean intransitive if I ask you literal meaning of the word intransitive uh transition is different from transitive okay they may sound similar but different but nonetheless nice nice effort let us understand this this these terms in its grammatical meaning okay let us forget about its literal meaning let us let us understand them in terms of their grammatical implications whenever we say a verb is transitive we mean the verb is going to have one object okay okay intransitive verbs will have no objects and then at the same time we could mention there is another type of verb which is called die transitive which simply means if transitive is has one object die transitive have two objects in transitive we we do not have a word called uh zero transitive or something intransitive means no object should be straightforward no issues still this doesn't help us enough right this describes the nature of the verb that is transitive intransitive or die transitive that is zero intransitive zero transitive one die transitive two but then how do I know which verb is intransitive and which verb is transitive I will decide the number of objects if I know a verb is intransitive or transitive or die transitive but then how do I know is a one can say okay let me first say the question how do I know a verb is transitive or intransitive one answer could be if the verb has two objects then it's die transitive if it has one object then it's transitive and if it has no objects then it is intransitive but that doesn't help us either we are we are talking about so this this helps us if you have a sentence if we don't have a sentence then how does this help see the see the problem we know the description but this doesn't still help much so if I give you a sentence I was sleeping then you know there is no object and this much of information could be helpful and you can see what's the word here sleep this is so the word sleep is an intransitive word but that we can derive deduct from a sentence if I just give you a word and ask you to tell me whether it's a transitive or intransitive how would you know there is no way to find out but I mean that's not apparent what we mean is that's not apparent we need to know this is a little thing keep in mind it's different from gender what did I tell you about gender gender of a word is arbitrarily assigned a chair is feminine there is no intrinsic no intrinsic rule which tells us chair must be feminine that's arbitrarily assigned but this is not arbitrary there is a pattern in it the pattern is very simple let's look at these sentences so the first set of verbs that you see they are examples of intransitive verbs okay they are examples of intransitive verbs sleep go come sit dance these are just couple of examples few examples languages are full of such examples if you come up with a sentence with these verbs you do not have a you do not have an object can you see can you read these sentences John was sleeping no object go bill was going home you see a noun after the verb go right which is home but it's not an object of this word which even complicates the problem the problem this is why I have highlighted these words in red they are not objects but the first sentence is at least simpler that there is no object in the second one you have something and still we are saying that's not an object the level of complexity is just higher how do I know right third one Mary was coming from school we have a noun school we have something more than a noun we have a preposition in a noun we will talk about those phrases in a moment not in a moment some other time but the verb come is an intransitive verb the what follows the verb coming is not an object of the word okay Chris was sitting in a chair the verb sit is an intransitive verb in a chair just like from a school is not an object Nancy was dancing you don't see any object there that's a clear intransitive word get it in the second set verbs like eat read and write these are examples of transitive verbs you can read them you see the they are objects in blue they require they are the required part of a sentence if you just say if I just say Bob was eating the idea is this sentence is not complete as long as this object is not present okay Chris was reading a novel we must not say Chris was reading we have to say Chris was reading a novel or whatever the person was reading the that part is the object of the word and then Lisa was writing a letter see this thing these are the objects of the verb the objects of transitive verb and the last two examples are examples of die transitive verbs where you have two objects again a sentence is not complete without both the objects so we we can say Tony gave a pen to his daughter pen is also an object to his daughter is also another is another object both the objects must be present in the sentence for the sentence to be complete Nancy was teaching Japanese English what does this mean what does the sentence mean she was teaching English to Japanese people right look at this we can say the same sentence in two different ways we can say Nancy was teaching Japanese English we can say Nancy was teaching English to Japanese see this thing but both must be there therefore the verbs like teach and give are called die transitive words now these are just examples of what I have told you I have still not told you how do I know whether a verb requires an object or not you can say because we are not native speakers of English you need to check this thing only with the native speaker because we are not native speakers of English a sentence like Bob was eating to us it sounds alright right this is why we don't depend on the judgment about a sentence who is not a native speaker okay we can say Chris was reading it's fine Lisa was writing that's also fine now I am not trying to say our English is bad I'm also not trying to say we don't understand how language works the reason why in our English these sentences are good without their objects is because of this reason again in languages we not only drop subjects but we can also drop objects in our languages we can drop objects in the context okay so if we have a verb kana which is a transitive verb then we can drop objects right because the objects are retrievable from the context Hindi Tamil Telugu Malayalam Marathi Gujarati allows dropping of objects also if a sentence without object in English is good to us that is the influence of our native languages on English where English does not allow dropping of objects so if you are asking a speaker of English from India these sentences are good to them if you ask these sentences to a native speaker of English they won't be able to tell you I mean I'm sorry they will be able to tell you that this sentence is incomplete when you say Bob was eating the sentence is incomplete they will they will still be waiting for the object Bob was eating what do you mean okay and the sentence sounds incomplete because of the lack of object all right now to wind it up and we will we'll discuss this thing very briefly when we meet next time with the other topics we only need to ask a question we only need to question the verb with what if you if you can question the word with what and you have a legitimate question then you will get an answer to if the question is not legitimate then there is no question of getting an answer as long as you can question the verb keep in mind only with what question the word with what then that's a transitive verb I can question eat with what or not eat you just you don't you don't even need to get a complete sentence what did you eat eat you can simply say eat what right that's a does this sound like a good question if it's a good question then you will get an answer to eat pizza eat ice cream then we know that this verb is transitive and it will need an object okay read what is that a good question write what if you look at intransitive verbs can we question for the verb sleep with the same question sleep what and this is why I am telling you please don't use other questions where when how none of them just what sleep what go what sit what dance what okay if the question is not legitimate the there is no possibility of getting an answer and therefore the verb is an intransitive verb which in turn means no object okay the question about die transitive verb is you still need the same question what but there is no way to figure out whether the verb is die transitive as long as you can figure out it's a transitive verb that's good enough okay die transitive verbs to non-natives we have to find out specifically keep this in the mind I have given you a diagnostic test this test is not part of either principle or parameter this is a diagnostic test and is not 100% full proof it works only to a great extent in let's say we can say 99% of the cases still 1% of the case doesn't work with this diagnostic test and this is not the right time to show you that 1% at one point I'll show you where it this doesn't work and you will be able to see again you know those verbs where this rule doesn't work it's not there is nothing new that I am telling you you already know that is our mind knows what's a transitive verb what's an intransitive verb which sentence is going to need an object which sentence is not going to need an object our mind also knows what I am going to tell you now is a verb is transitive or intransitive so this transitive or intransitive nature of a verb doesn't change or does not vary from language to language if go is intransitive in English it is going to stay intransitive in all the languages of the world that doesn't change that doesn't vary from language to language and this we that is human mind knows very well we stop here I think you will have classes any quick question see die transitive verbs are are an extension of transitive words so as long as you can figure out the teach is also a transitive like you can question teach what right as long as you can figure out it's a transitive that's good enough whether it's die transitive or not this diagnostic doesn't work there there is no diagnostics for that only that that has you have to depend on native intuition for that native intuition for that okay but you can definitely say this is also a transitive okay but the one percent cases where I said it doesn't work some of the verbs that look like transitive are not transitive really okay you can still question them with what but they are not transitive therefore I said in one percent of the cases they don't work with that one percent I didn't mean die transitive verbs okay more later thank you


Talk at OpenSource Summit Latin America 2022 in Cloud Open. In this talk, we'll be more on talking about the QoS experiment and how to create QoS experiment using the Litmus HDK. Let's have a short intro about me. I'm a software engineer at JFrog. I'm a certified Kubernetes administrator as well. I'm a core contributor and member of the CNSF incubating project. I'm a litmus QoS and a maintainer of the Litmus HDK, Python part. I'm also an international chess player. So, let's talk about today's talk now. We'll be more discussing about the QoS engineering. So, any idea what is the QoS engineering and what exactly it is? Okay, so QoS engineering. Let's take one short example, okay?  Your website is down. It is taking some time to get open it. Suddenly, it gets crashed, some of the big organizations. We can see many news also. There is a downfall, some were down, and many other things happen. So, why it happens exactly? There must be something happened. Something goes down. So, it affected the application and then the application also goes down. That misbehaved that downfall. Something wrong happened. So, that's the place where QoS engineering works. So, QoS engineering is more on we create an atmosphere where we inject the QoS and we actually see how the application is behaving. Let's take a short example that we have some 10 microservices running inside our application. With multiple microservices, like example 10. Half microservices goes down. Do we know how others will work on behalf of that microservices? No, we might not. So, we only see most of... We mainly target that we just see our containers are in healthy state, ports are in running, and that's all. But it's not something that's all we have to... There might be many possible ways where application can misbehave if some of service misbehaves. So, let's talk more on the tool, which is Litmus QoS tool. Litmus is an open source CSF incubating project, which is basically how the infrastructure for the outages and they have Litmus QoS have the more than 50 experiments where the disturbance can be made with the different types of experiments. Like, just take an example of memory hogging, CPU hogging, network loss, Dixfield and many other things. So, let's focus on the QoS experiment thing. So, QoS experiment is a particular way applicable to distributed computer environments with the large distributed systems. The components often have complex and unpredictable dependencies and it is difficult to troubleshoot the error or predict when an error will occur. So, more on using V, we are going to create experiment. Why we want that experiment? Then to make a disturbance, make something... Let's break something and let's see how the application behaves. There where the QoS experiment plays a role. So, where we encounter actual error and we see how the applications behave and we just regulates the conditions in distributed systems to test the system's resiliency. Let's talk about the Litmus ADK now. Litmus provides the SDK, which is the abstracted way of writing experiment where we provide some flow of writing experiment with the checks, pre and post QoS checks and also get the library packages and many more by defaultly generated where we can actually write our logic and we can write very seamlessly. We can write and we can actually test it and we can actually write and learn more about the QoS experiment through the SDK and we can update, we can overwrite whatever the logic wanted to. We can write that logic, we can test it, we can create QoS, we can inject QoS, we can see how the turbulence occurred and how the application is behaving within Litmus SDK. Litmus SDK provides in three different languages, one is the Go, Python and Ansible. In today's talk we will be more talking about the Litmus Python SDK. Litmus started supports the Litmus Python SDK from 0.0. Now we will follow, there are a number of steps which we have to follow for getting generated our abstracted stuff and we will just discuss about how to generate it and what are the components, which component is where it is used that way we will move on and we will build it and we will test it locally and we will also run experiment using the QoS center which is the Litmus QoS portal. Okay, so let's move now. Let's take a look against the GitHub repositories also. So this is the Litmus QoS project, Litmus repo where this is the QoS center. To install the QoS center, QoS center provides the user facing interface as well like we can actually run our experiments and we can see our dashboard matrix and so many things already there, we can have the teams and a lot of things just explore this. So I have already installed this Litmus QoS cluster scope. There is another thing is the namespace scope also supported. This is the Litmus Python where more or less Python based experiments are located here. There are already two experiments are there inside the experiment. One is the AWS and one is the generic port delete. One can take reference from both the experiments while writing in the experiment and SDK parts get covered into the Contribute Developer Guide. So there are the step by steps. All stuff has already given one can follow to get generated and get tested that locally. Also, there is one more way to test it like there is a small blog written by me where we can follow the steps and we can get at the point where we can get all stuff generated and where we can write our logics and we can build it, we can test it that all stuff has been mentioned here. This is the locally, suppose someone don't have Python locally installed, they just want some container to get environment of Python environment and they want to test there, they can follow the documentation. If someone is interested in PyLo installing locally Python and every stuff is there, they can just create Python environments locally and they can test it. We will follow this flow in today's talk. Let's move it to SDK part, this Contribute Guide and Developer Guide. This is the SDK components come where it generates files. Let's generate it, we will take that. So before generating, this is the main file where we have to first update our stuff. This stuff will get reflected throughout the experiment project where all stuff will get generated that will come from here. It might be a chart, it might be a Python code, experiment file, library file packages that all stuff will get generated from here. So this is the attribute.yml is the moron like the metadata aspects of our Kiosk experiment where we have to give the name of experiment, category of the experiment, version, repository where we keep community description, keywords, platforms. It can both namespace scope and cluster scope so we can provide scope, auxiliary checks, permissions or whatever permissions required for this experiment. Maturity level, maintenance list, provider name and references and many more they can like we can provide. So this is developer, let's move to that repo directory. So we can like, there are two flags which is provided. There is one file attribute generate experiment.py which takes actually three parameters. One is the attribute file to other things for generating the charts or experiments or charts where minus g's provides for the experiment and chart where the experiment creates the CR based manifest and charts creates the other manifest which is like chart, service, version, .yml and all. Also there is a minus t flag which is by default all but we can provide the category, only the category best charts will get generated experiment, the only experiment best manifest will get generated. So we will follow both one by one experiment and chart. Since we require both see we can see that it has shown it has created. Now let's take a look what all files got created within these two commands. So yeah, so we can see this when is the package thing when is the experiment thing and when is the cure sleep three main things which got generated throughout our commands. So what all these things are like let's take example first thing is in experiment and experiment we got the sample category this name is reflected from our developer this attribute file which is located in the developer contribute developer guide from there this names and all got created it got like it has taken. So let's take go to sample execute chaos where we got three file generated chart experiment and test. So someone using that octet environment to test on they can use this testing if you are using just a testing locally using some Python you know that this is not required experiment file which is the actual main dot actual experiment file actual flow of the experiment for at all is common for all chaos experiment that is given here. We can directly use this flow where we have pre-flight check or pre-check and post checks where before experiment and after experiment we just take that application is targeted application is healthy and we prepare chaos. This is the actual function where we inject the chaos. This is the pre before a course injection stuff and this is a cost during chaos and this is after course injection stuff all the events all result everything get updated like this is the main file and second file which we get which we get is the library file for the chaos it must where we get same name flow where we have to write our actual chaos experiment logic by default CPU hogging logic comes the same follow we have to follow and we have to write our injection logic just take example like logic one can do the network loss so network loss logic has to be written here one has to do the port delete logic has to be written in this file if there is a takes field and takes field logic has to be written or any Kubernetes or non Kubernetes based experiment is there then that has to be written here all require stuff and the next thing is come during this writing like for this our experiment what all environments required for example suppose we have memory hogging that which application has to be target applications namespace label kind chaos interval and many other environments is there this are based on for this experiment suppose someone has to be write some specific experiment some x y y for that x y y experiment what all environments we have to pass from our CRs which is the chaos engine chaos experiment cause results CRs are there chaos engineering chaos engine and cause experiments here result is some CR where we can see our all cross experiment details after the injection is this code and all and this is cause engine and cause experiments here where we can where we are these are the main CRs where user user user facing CRs are there those sample CRs like let's have a look this in the chart we get couple of manifest got generated which is the chaos engine so this is the chaos engine CR which holds the environments experiment environments for the environment specs and all name some others properties of cleanup policy and also details if it is no in space then we can have this this is the experiments here which holds the permission and some other meta data specs and ENVs as well including the image and command which you have to know and icon and all for experiment so these are the things which we get and next thing is the now once we are done with this now next thing is to test it so at this stage we have generated our default SDK stuff after that we have live folder where we can actually write our chaos experiments logic once we are ready with this we have to test it and we have to test it locally and using QoCenter as well once we are done with that we can press PR and we can actually see our stuff in QoCenter so let's test it so one thing to get that before we test that we have to update our couple of stuff here the main file is in been experiment experiment this is the place where we get call our experiments where we have to I already added couple of stuff here like to save our time to we need to import our that experiment sample category sample execution chaos experiment that we have to call that we else if condition needs to get added that is everything is mentioned in block we follow that block see importing else if condition and next thing we have to add this all directories for which are for our chaos experiment inside the setup where we initializes our setup like repo setup okay so once we are these done now let's now let's create a Python environment I believe I already have we can create so we are in the environment and requirements and all packages now one thing to get to know that like whatever changes we doing this our changes to before we run our cover Python main dot main file we have to run one more command which is the setup dot py command install where we what are the all stuff is required for this required packages and other requirements a repo setup project setup and all that stuff is there so need to install these ones to get our stuff done now once we are once we do that we can now actually run our commands before we do that let's create a term let's create a deployment which is already exist which is an engine is already running let's see the labels see we can see the labels and it is in default time space now we have to since we have to inject the chaos against what we install this application engine is application we will inject the chaos against this and we will see actually the behavior so be it for behavior and all we can have the set of the prometheus for example for some application we can have graphon and I go down to get much cross cross and I go to some many stuff it many more like to analyze our town falls and all that stuff we can get but this our talk is more on focus on creating this cross experiment and testing it so we'll focus let's discuss more on this now so environment we have to update our app name space default app label is this thing app kind now once we are doing this we can set up our chaos interval and chaos total good duration here one thing to remind that there are two such two things to be able to do support one is the parallel and one is the sequential in parallel we can target all application if suppose application level and there is a default and app name space app name space default and kind is a deployment set up there are 10 parts which is matching this three things and if we give the part for affected percentage and disturb environments where if there is a 100% it will take all parts and if it is 50% we'll target 50 parts so we can have we can do the parallel and sequential stuff on that so if you give the parallely what are the targeted application is there it will take all targeted application and the cause once if it is a sequential it will inject one application in one part it once we injected it will wait to complete the injection that time cause time cause interval will be the in addition time after the cause it will again inject it will again inject it will again inject one by one application it will keep on injecting and if it is parallel it will inject together with all the targeted application cause that both support support according to LeapMasker experiments both support should be given based on requirement now let's test it now we have updated now add the command which we have to run now let's this thing here also one thing to observe now if there is any command we have to run in some container LeapMask Python these processes are running as a background process to we have to use the ion operator to cause inject cause command and get out to another trader so for that we need to add an operator for an injection command if is there any command in your experiment if not then it is fine now the next thing is that once we have done this that we can test it locally our we know that in being we have experiment experiment.py so now we can pass our name as kiosk and we can wait now only when we get target container name it is it is waiting for the target container now let's see ok so as I said just sometime back whatever we do change we have to run one command installed so once we done this now new things has been taken now we can see that it is started injecting the kiosk now the total waiting time is 30 seconds and we have this kiosk interval time and as you will have to cure duration time is same so it will last for the 30 seconds and after that it will revert back the kiosk then so we can see our logs also we have verified that application is healthy before injecting the kiosk it is running and healthy containers also healthy and readiness is true we will see in 30 seconds that if after the kiosk injection also application is open healthy and everything is done we have verified the port kiosk application is running and healthy so successfully we have injected the kiosk we have created we got some default stuff from HDK we have to update that we have to test in this manner and next thing is that we have to build the Docker image and we have to follow the next steps now for the kiosk charts kiosk chart is this repo which is used to get reflect kiosk experiencing hub so whatever the experience are it is getting from the kiosk charts kiosk so now we have to update the kiosk chart repo in the format what we want now if you we have recently created some of the charts from Likman's python right so now let's have observation against that so here a couple of things to get there now okay so if you also carefully in that kiosk experiment we got chart full folder where we got many charts okay so now what we have to take this charts and create a folder and we have to arrange in a such manner that it follows the standard of Likman's kiosk charts the first thing is that icon we have to just copy the icon here inside icon at the top main folder will be the sample category what type of experiment is there that category should be here inside the charts which is the chart this chart like in the charts folder so in that chart we have to create a sample category whatever the name we have given for sample category and important note here is whatever we got in generated Likman's python is with underscore like this sign below sign but here we have to use the minus sign icon in sample category we have to while copy pasting we have to update everywhere inside here as well as in all manifest also if you carefully observe right side I have already created to sell the time so what are the engine and all places see this thing I have updated this to minus that thing we have to do in python folder can speak give any like minus sign all sign you can add there icon but for import it will throw error so we have follow the python standards to keep in this thing and for our standards we have to update that so in all files wherever that name is there sample category and sample is chaos experiment like this we have to update that in this way like you have to update this to do that is the note please it's a star now next thing is that it folders also we have to do that in left side this is the Likman python right side is the chaos chart repo GitHub repo I have already clone and open it and this is the names we have to update that now next thing is to first thing is the sample category we have to create a folder in that we have to put the icons and experiment dot e-mail sample category dot chart version chart service version e-mail and sample category dot package dot e-mail there's three files should be there from there we can see there are files couple of package file category file are already here and now next thing is that we have to create a folder with sample execution code which is the experiment name there we have to put engine which is this one experiment file we have to move there and some two might change modifications like the modifications that name we have to update we have underscore two like hyphen we have to update that and r-back we need to require there and one more is the sample execution chaos dot e-mail this file is required there so these things has to be get done this file is holding information about our experiment and next thing is to remember that in experiment dot e-mail we have to update our new docker image file to test it so I have updated it to my kale om slash pyrunner ci and I have updated that the chaos experiment name also these things has to be taken care and we need to add our all required env's in this like whatever this is since we are more on default for chaos but as per requirement we have to add our env's and all here so once we are done with this modification I will repeat once more first thing is that we have to create sample category in that sample category three things will come one is the icons one is the sample execution chaos and one is the next thing is the manifest three this manifest and all everything is we get from litmus python while generating that we have to copy paste with two changes one is the folder one is the file name folder name changes underscore to mine hyphen second is that inside the files also we have to update names sample execution chaos name and sample category these two names should be updated everywhere so if you see left side this is the name and right side this is the name hyphen so that thing we have to do once we are done with that we have to push it to repo I already pushed it now next thing is that since we already installed the litmus chaos enter like I already show you that it must repo with cluster scope and scope is presented so already installed that so this is this so here what we can do now we have to connect our hub so let me show you again why disconnecting let me show you this thing you have to connect it we can use that open now the GWRL is let's need to take mine since I have pushed it to my repo we will give and the branch name is opensource submit sorry chaos starts this chaos start we have to copy this link and the branch is the open source submit our changes chaos starts and just with the chaos hub with chaos enter we will connect our repo how to connect that let's take a look now we have to give any name now we have to give the repo link where we have pushed our changes chaos start changes recently this is this and branch name expect for this to get connected now this is connected now let's go to the chaos scenarios where we can actually schedule our chaos this is the agent where there are a couple of ways where we get like some we can see our hub workflows default workflows we can add we can use any existing template after learning that we can save our templates also this is a chaos hub directly we can run from chaos we can directly upload our flow email also in now we will use for our hub to get connected and to run this we can add our chaos experiment also our name as default name we have taken this all default name sample and sample category we can update that in attribute email only earlier time only so this is the experiment which we have created and that name also now we can edit the email if something wanted to edit or something we wanted to update that we can do that now we can see that I have like just use that docker image and give on the name chaos which we have recently given that and the another way is to do like directly but then we can next do we can update our environments our chaos interval and all app name specific default app in labels and all whatever we are updated in that manifest that will get reflected here and we can actually now schedule we can do the weightage there are ways like schedule now recurrent way cross jobs and all supported now let's finish we have scheduled our experiment we have created it now let's see that this is the argo workflow which is used now let's have the look of let's have watch again this now so this is the workflow which is started now the first step is now creating installing the chaos experiments that is getting done now since it was already there it's showing the unchange so the first after this workflow started the first step is to install the chaos experiment once it get done now the actual cause injection starts where the first thing which comes up is the chaos runner which takes the information from CRs and launch when experiment job get done and let's wait for now so we can see that so runner has launched and once the runner get launched after the launch is the actual job of the chaos experiment we can see our logs locally as well as well as from ua so this has started injecting the chaos and we can see the logs in UI also we can see that chaos experiments stuff and all now let's wait for some more time to get it updated after this experiment get done results get subtits we can see now view tables also steps okay so locally we can see that it has injected the chaos successfully and it's done now let's for some more seconds to get that reflected so we can see now the injected successfully injected all the stuff has been done now we can see the chaos result as well where we can see our pass but it completed phase our resiliency score and many other things which we can check here probe success percentage and all pass run and all stuff which we can get here and tables view also we can see if there is analytics connected we can see all the results also so this is more on our the chaos experiment we have created it we have locally tested we have test solution chaos center and we got stuff these are the references for our repo like one is litmus chaos one is litmus python chaos chat and chaos once everything get done we have to raise the PR to chaos charts once it get much that experiment will get reflected in chaos and feel free to contact me on twitter, link in github, dev.to I am Omkar and thank you so much